<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Usuario
 *
 * @author Ivan
 */
class Usuario extends CI_Model{
    //put your code here
    var $id;
    var $usuario;
    var $password;
    var $t_rol_id;
    var $eliminado;
 
    
    function __construct() {
        parent::__construct();
        $this->load->library('encrypt');
    }
    
    function nuevo()
    {
        
        $this->id = $_POST['id'];
        $this->nombre = $_POST['nombre'];
        $this->password=$this->encrypt->sha1($_POST['password']);
        $this->id_rol = $_POST['id_rol'];
        $this->eliminado=0;

        
        $this->db->trans_start();
        $this->db->insert('t_usuarios', $this);
        $this->db->trans_complete();
        if($this->db->trans_status() == FALSE)
        {
            show_error('Error en la insercion. CODIGO: ' . $this->db->_error_message());
        }else{
            header('Location: ' . base_url() . 'cusuario/consultar'); 
        }

                
    }
    
    function nuevoParametro( $nom, $contraseña,$rol)
    {       
        $this->load->library('encrypt');
        $this->usuario = $nom;
        $this->password= $this->encrypt->sha1($contraseña);
        $this->t_rol_id = $rol;
        $this->eliminado=0;

        
        $this->db->trans_start();
        $this->db->insert('t_personas', $this);
        $this->db->trans_complete();
        if($this->db->trans_status() == FALSE)
        {
            show_error('Error en la insercion. CODIGO: ' . $this->db->_error_message());
        }else{
            header('Location: ' . base_url() . 'cusuario/consultar'); 
        }

                
    }
   
    function listarTodos()
    {
        $this->db->select('t_usuarios.id,t_usuarios.nombre, t_usuarios.password,t_usuarios.id_rol,t_roles.nombre as rol');
        $this->db->from('t_usuarios');
        $this->db->join('t_roles', 't_usuarios.id_rol = t_roles.id');
        $this->db->where('t_usuarios.eliminado',0);
        $usuario = $this->db->get();
        
        return $usuario->result();
    }
    
    function getUsuario($id){
        $usuario = $this->db->get_where('t_personas', array('id'=> $id));
        return $usuario->first_row();
                
    }
    
    function modificar($id){
       // if($id_tipo == $_POST['id']){
            
            $datos = array(
                'nombre'=> $_POST['nombre'],
                'password'=> sha1($_POST['nombre']),
                'id_rol'=> $_POST['id_rol']
            );
            
            $this->db->trans_start();
            $this->db->where('id',$id);
            $this->db->update('t_usuarios',$datos);
            $this->db->trans_complete();
            if($this->db->trans_status() == FALSE)
            {
                show_error('Error en la insercion. CODIGO: ' . $this->db->_error_message());
            }else{
                header('Location: ' . base_url() . 'cusuario/consultar'); 
            }   
        
    }
    
    function eliminar($id)
    {
        $this->db->trans_start();
        $this->db->where('id',$id);
        $datos = array('eliminado'=>1);
        $this->db->update('t_usuarios',$datos);
        $this->db->trans_complete();
        if($this->db->trans_status() == FALSE)
        {
            show_error('Error en la insercion. CODIGO: ' . $this->db->_error_message());
        }else{
            header('Location: ' . base_url() . 'cusuario/consultar'); 
        }
    }
    
    function validarUsuario($usuario, $contrasenia, $token=1){
        $contra =$this->encrypt->sha1($contrasenia);
       
        $usuarios = $this->db->get_where('t_personas',array('usuario'=> $usuario, 'password'=>$contra));
        //$usuario1 = $usuarios->first_row();
        
        if($usuarios->num_rows() > 0)
        {
            $resultado['existe'] = true;
        }
        else
        {
            $resultado['existe'] = false;
        }
        
       $resultado['usuario'] = $usuarios->first_row();
       return $resultado;
    }
    
    function generarToken($id)
    {        
        $token = $this->encrypt->sha1(random_string('alnum', 8));
                
       $datos = array(             
                'token'=>$token
            );
            
            $this->db->trans_start();
            $this->db->where('id',$id);
            $this->db->update('t_personas',$datos);
            $this->db->trans_complete();
            if($this->db->trans_status() == FALSE)
            {
                show_error('Error en la insercion. CODIGO: ' . $this->db->_error_message());
            }else{
               
            }          
        return $token;
    }
    
    function validarToken($id, $token)
    {
        $this->db->select('token');
        $usuarios = $this->db->get_where('t_personas',array('id'=> $id));
        $temp = $usuarios->first_row();
        
        if($temp->token === $token)
        {
            return true;
        }
        else
        {
            return false;
        }
        
      
    }
}
?>